1. Field of the Invention
This invention relates to differential caching.
2. Related Art
When users (at client devices) request information from a server (at a server device), it often occurs that those users request identical, or nearly identical, information from the server. When the requested information is identical, there are known techniques for providing identical information without incurring the same amount of resource burden on the server. For one example, a single proxy for multiple users can cache the identical information, and simply provide the identical information to each user (after the first) who requests that information. This method is known in the art as “proxy caching”. For a second example, the server can maintain its own cache, and similarly provide the identical information to each user (after the first) who requests that information. This method is known in the art as “reverse proxy caching”.
While these known methods generally achieve the goal of providing identical information to multiple users, they are unable to provide information that is not identical, even if that non-identical information is very similar. For example, information can be non-identical, even if very similar, for one or more of the following reasons:                The web page requested by users includes a banner ad that is changed at relatively frequent intervals by the server or by a redirected server for the banner ad.        The web page requested by users includes a report of data from a database that is changed at relatively frequent intervals. One example of such a database includes a database of stock market prices or related data.        The web page requested by users includes personalization or other data specific to the user requesting the page. One example of such a web page includes a web page with local news or weather reports specific to the locale of the requesting user.        
Known methods of sending such non-identical information include “delta encoding”, in which the server determines a set of changes between an earlier web page served to an earlier request, and a new web page served in response to a new request. While these methods of delta encoding can obtain significant compression of a new web page, it suffers from several drawbacks. First, these methods depend on the server being able to determine a version of the web page that the requesting user already has, so as to be able to send only changes from that base web page. Thus, if the requesting user does not have an earlier copy of the web page (or if the earlier copy of the web page is relatively stale), the degree of effective compression is substantially reduced. Second, these methods depend on the server and the user having a protocol by which the server can send only changes to the base web page. Thus, if the requesting user does not implement that protocol, there is no substantial advantage obtained.
Accordingly, it would be desirable to provide a technique for providing relatively identical (but still non-identical) web pages, when requested by subsequent users, with substantial reduction of bandwidth or other resource consumption, that is not subject to drawbacks of the known art.